package com.hm.pan.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.springframework.util.DigestUtils;

public class StringUtil {

	/**
	 * 判断字符串是否为null或空字符串
	 */
	public static boolean isEmpty(String str) {
		return str == null || str.length() == 0;
	}

	/**
	 * MD5
	 */
	public static String MD5(String str) {
		byte[] bytes = "QianDuCloudisk_%$^!#@".getBytes();
		try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
			baos.write(bytes);
			baos.write(("" + str).getBytes("UTF-8"));
			bytes = baos.toByteArray();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return DigestUtils.md5DigestAsHex(bytes);
	}

	/**
	 * 转义正则特殊字符 $()*+.[]?\^{} \ \需要第一个替换，否则replace方法替换时会有逻辑bug
	 */
	public static String RegExpQuote(String str) {
		if (StringUtil.isEmpty(str)) {
			return str;
		}

		return str.replace("\\", "\\\\").replace("*", "\\*").replace("+", "\\+").replace("|", "\\|").replace("{", "\\{")
				.replace("}", "\\}").replace("(", "\\(").replace(")", "\\)").replace("^", "\\^").replace("$", "\\$")
				.replace("[", "\\[").replace("]", "\\]").replace("?", "\\?").replace(",", "\\,").replace(".", "\\.")
				.replace("&", "\\&");
	}

//	public Map<String, String> parseURL(String url) {
//		if (isEmpty(url)) {
//			return null;
//		}
//
//		return
//	}

}
